class UserInfo {
  UserInfo({
    this.appCode,
    this.appCodes,
    this.appId,
    this.checkedIdentity,
    this.defaultPlatform,
    this.expireTime,
    this.expiresMillisecond,
    this.headImgUrl,
    this.headUrl,
    this.idCard,
    this.initPassword,
    this.loginName,
    this.loginPostInfo,
    this.loginTime,
    this.loginType,
    this.menuIds,
    this.nickName,
    this.openId,
    this.permissionMenuDTOS,
    this.permissionMenus,
    this.roleVOList,
    this.secretData,
    this.sessionKey,
    this.telephone,
    this.tenantId,
    this.token,
    this.uiasRoleList,
    this.userId,
    this.userName,
    this.userOrgPostDTOList,
    this.userType,
    this.cityInfo,
  });

  UserInfo.fromJson(dynamic json) {
    appCode = json['appCode'];
    if (json['appCodes'] != null) {
      appCodes = [];
      json['appCodes'].forEach((v) {
        appCodes?.add(v);
      });
    }
    appId = json['appId'];
    checkedIdentity = json['checkedIdentity'];
    defaultPlatform = json['defaultPlatform'];
    expireTime = json['expireTime'];
    expiresMillisecond = json['expiresMillisecond'];
    headImgUrl = json['headImgUrl'];
    headUrl = json['headUrl'];
    idCard = json['idCard'];
    initPassword = json['initPassword'];
    loginName = json['loginName'];
    loginPostInfo = json['loginPostInfo'] != null ? LoginPostInfo.fromJson(json['loginPostInfo']) : null;
    loginTime = json['loginTime'];
    loginType = json['loginType'];
    if (json['menuIds'] != null) {
      menuIds = [];
      json['menuIds'].forEach((v) {
        menuIds?.add(v);
      });
    }
    nickName = json['nickName'];
    openId = json['openId'];
    if (json['permissionMenuDTOS'] != null) {
      permissionMenuDTOS = [];
      json['permissionMenuDTOS'].forEach((v) {
        permissionMenuDTOS?.add(PermissionMenuDtos.fromJson(v));
      });
    }
    permissionMenus = json['permissionMenus'] != null ? PermissionMenus.fromJson(json['permissionMenus']) : null;
    if (json['roleVOList'] != null) {
      roleVOList = [];
      json['roleVOList'].forEach((v) {
        roleVOList?.add(RoleVoList.fromJson(v));
      });
    }
    secretData = json['secretData'];
    sessionKey = json['sessionKey'];
    telephone = json['telephone'];
    tenantId = json['tenantId'];
    token = json['token'];
    if (json['uiasRoleList'] != null) {
      uiasRoleList = [];
      json['uiasRoleList'].forEach((v) {
        uiasRoleList?.add(UiasRoleList.fromJson(v));
      });
    }
    userId = json['userId'];
    userName = json['userName'];
    if (json['userOrgPostDTOList'] != null) {
      userOrgPostDTOList = [];
      json['userOrgPostDTOList'].forEach((v) {
        userOrgPostDTOList?.add(UserOrgPostDtoList.fromJson(v));
      });
    }
    userType = json['userType'];
    cityInfo = json['cityInfo'];
  }

  String? appCode;
  List<dynamic>? appCodes;
  String? appId;
  String? checkedIdentity;
  String? defaultPlatform;
  String? expireTime;
  int? expiresMillisecond;
  String? headImgUrl;
  String? headUrl;
  String? idCard;
  String? initPassword;
  String? loginName;
  LoginPostInfo? loginPostInfo;
  String? loginTime;
  String? loginType;
  List<dynamic>? menuIds;
  String? nickName;
  String? openId;
  List<PermissionMenuDtos>? permissionMenuDTOS;
  PermissionMenus? permissionMenus;
  List<RoleVoList>? roleVOList;
  dynamic secretData;
  String? sessionKey;
  String? telephone;
  String? tenantId;
  String? token;
  List<UiasRoleList>? uiasRoleList;
  String? userId;
  String? userName;
  List<UserOrgPostDtoList>? userOrgPostDTOList;
  int? userType;
  String? cityInfo;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['appCode'] = appCode;
    if (appCodes != null) {
      map['appCodes'] = appCodes?.map((v) => v.toJson()).toList();
    }
    map['appId'] = appId;
    map['checkedIdentity'] = checkedIdentity;
    map['defaultPlatform'] = defaultPlatform;
    map['expireTime'] = expireTime;
    map['expiresMillisecond'] = expiresMillisecond;
    map['headImgUrl'] = headImgUrl;
    map['headUrl'] = headUrl;
    map['idCard'] = idCard;
    map['initPassword'] = initPassword;
    map['loginName'] = loginName;
    if (loginPostInfo != null) {
      map['loginPostInfo'] = loginPostInfo?.toJson();
    }
    map['loginTime'] = loginTime;
    map['loginType'] = loginType;
    if (menuIds != null) {
      map['menuIds'] = menuIds?.map((v) => v.toJson()).toList();
    }
    map['nickName'] = nickName;
    map['openId'] = openId;
    if (permissionMenuDTOS != null) {
      map['permissionMenuDTOS'] = permissionMenuDTOS?.map((v) => v.toJson()).toList();
    }
    if (permissionMenus != null) {
      map['permissionMenus'] = permissionMenus?.toJson();
    }
    if (roleVOList != null) {
      map['roleVOList'] = roleVOList?.map((v) => v.toJson()).toList();
    }
    map['secretData'] = secretData;
    map['sessionKey'] = sessionKey;
    map['telephone'] = telephone;
    map['tenantId'] = tenantId;
    map['token'] = token;
    if (uiasRoleList != null) {
      map['uiasRoleList'] = uiasRoleList?.map((v) => v.toJson()).toList();
    }
    map['userId'] = userId;
    map['userName'] = userName;
    if (userOrgPostDTOList != null) {
      map['userOrgPostDTOList'] = userOrgPostDTOList?.map((v) => v.toJson()).toList();
    }
    map['userType'] = userType;
    map['cityInfo'] = cityInfo;
    return map;
  }
}

class UserOrgPostDtoList {
  UserOrgPostDtoList({
    this.districtLevel,
    this.isDefault,
    this.orgAlias,
    this.orgId,
    this.orgName,
    this.orgPostId,
    this.orgType,
    this.postId,
    this.postName,
  });

  UserOrgPostDtoList.fromJson(dynamic json) {
    districtLevel = json['districtLevel'];
    isDefault = json['isDefault'];
    orgAlias = json['orgAlias'];
    orgId = json['orgId'];
    orgName = json['orgName'];
    orgPostId = json['orgPostId'];
    orgType = json['orgType'];
    postId = json['postId'];
    postName = json['postName'];
  }

  String? districtLevel;
  int? isDefault;
  String? orgAlias;
  String? orgId;
  String? orgName;
  String? orgPostId;
  String? orgType;
  String? postId;
  String? postName;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['districtLevel'] = districtLevel;
    map['isDefault'] = isDefault;
    map['orgAlias'] = orgAlias;
    map['orgId'] = orgId;
    map['orgName'] = orgName;
    map['orgPostId'] = orgPostId;
    map['orgType'] = orgType;
    map['postId'] = postId;
    map['postName'] = postName;
    return map;
  }
}

class UiasRoleList {
  UiasRoleList({
    this.roleCode,
    this.roleId,
    this.roleName,
    this.roleType,
    this.sourceId,
    this.sourceType,
  });

  UiasRoleList.fromJson(dynamic json) {
    roleCode = json['roleCode'];
    roleId = json['roleId'];
    roleName = json['roleName'];
    roleType = json['roleType'];
    sourceId = json['sourceId'];
    sourceType = json['sourceType'];
  }

  String? roleCode;
  String? roleId;
  String? roleName;
  int? roleType;
  String? sourceId;
  String? sourceType;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['roleCode'] = roleCode;
    map['roleId'] = roleId;
    map['roleName'] = roleName;
    map['roleType'] = roleType;
    map['sourceId'] = sourceId;
    map['sourceType'] = sourceType;
    return map;
  }
}

class RoleVoList {
  RoleVoList({
    this.orgPostRoleType,
    this.roleCode,
    this.roleName,
    this.userId,
  });

  RoleVoList.fromJson(dynamic json) {
    orgPostRoleType = json['orgPostRoleType'];
    roleCode = json['roleCode'];
    roleName = json['roleName'];
    userId = json['userId'];
  }

  String? orgPostRoleType;
  String? roleCode;
  String? roleName;
  String? userId;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['orgPostRoleType'] = orgPostRoleType;
    map['roleCode'] = roleCode;
    map['roleName'] = roleName;
    map['userId'] = userId;
    return map;
  }
}

class PermissionMenus {
  PermissionMenus({
    this.additionalProperties1,
  });

  PermissionMenus.fromJson(dynamic json) {
    additionalProperties1 = json['additionalProperties1'] != null ? AdditionalProperties1.fromJson(json['additionalProperties1']) : null;
  }

  AdditionalProperties1? additionalProperties1;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    if (additionalProperties1 != null) {
      map['additionalProperties1'] = additionalProperties1?.toJson();
    }
    return map;
  }
}

class AdditionalProperties1 {
  AdditionalProperties1({
    this.appCode,
    this.belongPage,
    this.menuCode,
    this.menuId,
    this.menuName,
    this.menuType,
    this.menuUrl,
    this.pid,
  });

  AdditionalProperties1.fromJson(dynamic json) {
    appCode = json['appCode'];
    belongPage = json['belongPage'];
    menuCode = json['menuCode'];
    menuId = json['menuId'];
    menuName = json['menuName'];
    menuType = json['menuType'];
    menuUrl = json['menuUrl'];
    pid = json['pid'];
  }

  String? appCode;
  String? belongPage;
  String? menuCode;
  String? menuId;
  String? menuName;
  int? menuType;
  String? menuUrl;
  String? pid;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['appCode'] = appCode;
    map['belongPage'] = belongPage;
    map['menuCode'] = menuCode;
    map['menuId'] = menuId;
    map['menuName'] = menuName;
    map['menuType'] = menuType;
    map['menuUrl'] = menuUrl;
    map['pid'] = pid;
    return map;
  }
}

class PermissionMenuDtos {
  PermissionMenuDtos({
    this.appCode,
    this.belongPage,
    this.menuCode,
    this.menuId,
    this.menuName,
    this.menuType,
    this.menuUrl,
    this.pid,
  });

  PermissionMenuDtos.fromJson(dynamic json) {
    appCode = json['appCode'];
    belongPage = json['belongPage'];
    menuCode = json['menuCode'];
    menuId = json['menuId'];
    menuName = json['menuName'];
    menuType = json['menuType'];
    menuUrl = json['menuUrl'];
    pid = json['pid'];
  }

  String? appCode;
  String? belongPage;
  String? menuCode;
  String? menuId;
  String? menuName;
  int? menuType;
  String? menuUrl;
  String? pid;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['appCode'] = appCode;
    map['belongPage'] = belongPage;
    map['menuCode'] = menuCode;
    map['menuId'] = menuId;
    map['menuName'] = menuName;
    map['menuType'] = menuType;
    map['menuUrl'] = menuUrl;
    map['pid'] = pid;
    return map;
  }
}

class LoginPostInfo {
  LoginPostInfo({
    this.districtLevel,
    this.isDefault,
    this.orgAlias,
    this.orgId,
    this.orgName,
    this.orgPostId,
    this.orgType,
    this.postId,
    this.postName,
  });

  LoginPostInfo.fromJson(dynamic json) {
    districtLevel = json['districtLevel'];
    isDefault = json['isDefault'];
    orgAlias = json['orgAlias'];
    orgId = json['orgId'];
    orgName = json['orgName'];
    orgPostId = json['orgPostId'];
    orgType = json['orgType'];
    postId = json['postId'];
    postName = json['postName'];
  }

  String? districtLevel;
  int? isDefault;
  String? orgAlias;
  String? orgId;
  String? orgName;
  String? orgPostId;
  String? orgType;
  String? postId;
  String? postName;

  Map<String, dynamic> toJson() {
    final map = <String, dynamic>{};
    map['districtLevel'] = districtLevel;
    map['isDefault'] = isDefault;
    map['orgAlias'] = orgAlias;
    map['orgId'] = orgId;
    map['orgName'] = orgName;
    map['orgPostId'] = orgPostId;
    map['orgType'] = orgType;
    map['postId'] = postId;
    map['postName'] = postName;
    return map;
  }
}
